package com.arpa.wms.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.arpa.wms.domain.entity.BasicEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 出货分配DTO
 * </p>
 *
 * @author LEO
 * @since 2020-08-07
 */
@Data
@ApiModel(value="DeliveryDistributionVO对象", description="出货分配")
public class DeliveryDistributionVO extends BasicEntity implements Serializable {

    @ApiModelProperty(value = "数据标识")
    private String code;

    @ApiModelProperty(value = "所属机构")
    private String groupCode;

    @ApiModelProperty(value = "出货单号")
    private String deliveryCode;

    @ApiModelProperty(value = "出货明细标识")
    private String deliveryItemCode;

    @ApiModelProperty(value = "库位")
    private String location;

    @ApiModelProperty(value = "分配数量")
    private BigDecimal distributionQuantity;

    @ApiModelProperty(value = "库存code")
    private String inventoryCode;

    @ApiModelProperty(value = "库存状态")
    private String status;

    @ApiModelProperty(value = "分配状态")
    private String distributionStatus;

    @ApiModelProperty(value = "生产日期")
    @JSONField(format="yyyy-MM-dd")
    private LocalDateTime gmtManufacture;

    @ApiModelProperty(value = "过期日期")
    @JSONField(format="yyyy-MM-dd")
    private LocalDateTime gmtExpire;

    @ApiModelProperty(value = "批次号")
    private String lotId;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "总数")
    private Long total;

    @ApiModelProperty(value = "计划数量")
    private BigDecimal planQuantity;

    @ApiModelProperty(value = "波次单号")
    private String wavePickingCode;

    @ApiModelProperty(value = "商品code")
    private String goodsCode;

    @ApiModelProperty(value = "商品编码")
    private String goodCode;

    @ApiModelProperty(value = "分配类型")
    private String type;

    @ApiModelProperty(value = "第几页")
    private Integer pageNum=1;

    @ApiModelProperty(value = "每页条数")
    private Integer pageSize=10;

    @ApiModelProperty(value = "排序字段")
    private String sortField;

    @ApiModelProperty(value = "排序方式")
    private String sortType;

    @ApiModelProperty(value = "批次号")
    private String lot;

    @ApiModelProperty(value = "原库存code")
    private String oldInventoryCode;

    @ApiModelProperty(value = "拣货单号")
    private String pickingCode;

    @ApiModelProperty(value = "仓库")
    private String warehouseCode;

    @ApiModelProperty(value = "库区")
    private String warehouseSpaceCode;

    @ApiModelProperty(value = "原库位号，用于作业中库存返还时操作；")
    private String oldLocation;

    @ApiModelProperty(value = "拣货数量")
    private BigDecimal pickingQuantity;

    @ApiModelProperty(value = "出库数量")
    private BigDecimal outboundQuantity;

    @ApiModelProperty(value = "库存状态")
    private String goodsStatus;

    @ApiModelProperty(value = "库存状态")
    private String goodsStatusName;

    @ApiModelProperty(value = "收货批次")
    private String receiveLot;

    @ApiModelProperty(value = "存货日期")
    private LocalDateTime gmtStock;

    @ApiModelProperty(value = "供应商")
    private String supplier;

    @ApiModelProperty(value = "序列号")
    private String serialNumber;

    @ApiModelProperty(value = "扩展1")
    private String extendOne;

    @ApiModelProperty(value = "扩展2")
    private String extendTwo;

    @ApiModelProperty(value = "扩展3")
    private BigDecimal extendThree;

    @ApiModelProperty(value = "扩展4")
    private BigDecimal extendFour;

    @ApiModelProperty(value = "扩展5")
    private LocalDateTime extendFive;

    @ApiModelProperty(value = "扩展6")
    private LocalDateTime extendSix;

    @ApiModelProperty(value = "库存是否锁定；从库存中带过来的")
    private Integer isLock;

    @ApiModelProperty(value = "库存容器号，从库存中带出，由于周转箱号不会保存到库存中，所以这个字段有值则说明是托盘号；")
    private String inventoryContainerBarCode;

    @ApiModelProperty(value = "oms销售单明细code")
    private String saleItemCode;

    @ApiModelProperty(value = "库存商品是否可发货；0：是；1：否；")
    private String isConsignment;

    @ApiModelProperty(value = "缺货数量")
    private BigDecimal refundQuantity;

    @ApiModelProperty(value = "基本单位")
    private String basicUnit;

    @ApiModelProperty(value = "基本单位名称")
    private String basicUnitName;

    @ApiModelProperty(value = "复核缺货数量")
    private BigDecimal recheckRefundQuantity;

    @ApiModelProperty(value = "ISV订单号")
    private String deliveryOrderCode;

    @ApiModelProperty(value = "销售平台")
    private String logisticsName;

    @ApiModelProperty(value = "收获客户")
    private String customerName;

    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    @ApiModelProperty(value = "订单次序")
    private String orderNum;

    @ApiModelProperty(value = "未复核数量")
    private BigDecimal notRecheckQuantity;

    @ApiModelProperty(value = "复核数量")
    private BigDecimal recheckQuantity;

}
